perm filename PRED2.FAI[SYS,HE]2 blob sn#009296 filedate 1972-12-06 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00005 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002	TITLE WINGED
 00003 00003	FETCH LINK FROM NODE.
 00005 00004	STORE LINK INTO NODE.
 00007 00005	END
 00008 ENDMK
⊗;
TITLE WINGED

; ALTERNATE PDP-10 MNEMONICS.
	OPDEF CAR [HLRZ]
	OPDEF CDR [HRRZ]
	OPDEF DAC [MOVEM]
	OPDEF DAP [HRRM]
	OPDEF DIP [HRLM]
	OPDEF GO  [JRST]
	OPDEF LAC [MOVE]
	OPDEF NAP [HRRE]
	OPDEF NIP [HLRE]
	OPDEF RIP [HLLE] ; REAL FROM INSTRUCTION PART.

;SAIL LIKE SUBROUTINE LINKAGE.
	P←17
	DEFINE ARG1<-1(17)>
	DEFINE ARG2<-2(17)>
;FETCH LINK FROM NODE.
	DEFINE SUBR (NAME,XXX,I){
	INTERN NAME↔NAME: LAC 1,ARG1↔XXX 1,0 I(1)
	SUB P,[XWD 2,2]↔GO @2(P)}

	SUBR(PART  ,NIP,-3)	SUBR(COPART,NAP,-3)
	SUBR(EXTENT,CAR,-2)	SUBR(LOCOR ,CDR,-2)
	SUBR(PNAME ,CAR,-1)	SUBR(DISK  ,CDR,-1)
	SUBR(TYPE  ,CAR,+0)	SUBR(SERIAL,CDR,+0)
	SUBR(NFACE ,CAR,+1)	SUBR(PFACE ,CDR,+1)
	SUBR(NED   ,CAR,+2)	SUBR(PED   ,CDR,+2)
	SUBR(NVT   ,CAR,+3)	SUBR(PVT   ,CDR,+3)
	SUBR(NCW   ,CAR,+4)	SUBR(PCW   ,CDR,+4)
	SUBR(NCCW  ,CAR,+5)	SUBR(PCCW  ,CDR,+5)
	SUBR(FCNT  ,CAR,+4)	SUBR(VCNT  ,CDR,+4)
	SUBR(ECNT  ,CAR,+5)	SUBR(PCNT  ,CDR,+5)
	SUBR(NBODY ,CAR,+6)	SUBR(PBODY ,CDR,+6)
	SUBR(NUF   ,CAR,+7)	SUBR(PUF   ,CDR,+7)
	SUBR(NCNT  ,NIP,+2)	SUBR(TJOYNT,CDR,+1)
	SUBR(X1DC  ,NIP,-3)	SUBR(Y1DC  ,NAP,-3)
	SUBR(X2DC  ,NIP,-2)	SUBR(Y2DC  ,NAP,-2)
	SUBR(XDC   ,RIP,+1)	SUBR(YDC   ,RIP,+2)
	SUBR(O,CAR,+6);
	SUBR(ALT,CAR,+6);

;FETCH DATA FROM NODE.

	SUBR(AA,LAC,-3)	SUBR(BB,LAC,-2)	SUBR(CC,LAC,-1)
	SUBR(XWC,LAC,-3) SUBR(YWC,LAC,-2) SUBR(ZWC,LAC,-1)
	SUBR(XPP,LAC,+4) SUBR(YPP,LAC,+5) SUBR(ZPP,LAC,+6)
	SUBR(IX,LAC,+0)	SUBR(IY,LAC,+1)	SUBR(IZ,LAC,+2)
	SUBR(JX,LAC,+3)	SUBR(JY,LAC,+4)	SUBR(JZ,LAC,+5)
	SUBR(KX,LAC,+6)	SUBR(KY,LAC,+7)	SUBR(KZ,LAC,+8)


;STORE LINK INTO NODE.
	DEFINE SUBR(NAME,XXX,I){
	INTERN NAME↔NAME: LAC 1,ARG1↔LAC ARG2↔XXX 0 I(1)
	SUB P,[XWD 3,3]↔GO @3(P)}

	SUBR(PART. ,DIP,-3)	SUBR(COPAR.,DAP,-3)	
	SUBR(EXTEN.,DIP,-2)	SUBR(LOCOR.,DAP,-2)	
	SUBR(PNAME.,DIP,-1)	SUBR(DISK. ,DAP,-1)	
	SUBR(TYPE. ,DIP,+0)	SUBR(SERIA.,DAP,+0)	
	SUBR(NFACE.,DIP,+1)	SUBR(PFACE.,DAP,+1)	
	SUBR(NED.  ,DIP,+2)	SUBR(PED.  ,DAP,+2)	
	SUBR(NVT.  ,DIP,+3)	SUBR(PVT.  ,DAP,+3)	
	SUBR(NCW.. ,DIP,+4)	SUBR(PCW.. ,DAP,+4)	
	SUBR(NCCW..,DIP,+5)	SUBR(PCCW..,DAP,+5)	
	SUBR(FCNT. ,DIP,+4)	SUBR(VCNT. ,DAP,+4)	
	SUBR(ECNT. ,DIP,+5)	SUBR(PCNT. ,DAP,+5)	
	SUBR(NBODY.,DIP,+6)	SUBR(PBODY.,DAP,+6)	
	SUBR(NUF.  ,DIP,+7)	SUBR(PUF.  ,DAP,+7)	
	SUBR(NCNT. ,DIP,+2)	SUBR(TJOIN.,DAP,+1)	
	SUBR(O.,DIP,+6);
	SUBR(ALT.,DIP,+6);

END